Skip to content

chore(desktop): Ultracite lint init and Oxlint migration - #223

Merged
IchenDEV merged 19 commits into
mainfrom
cursor/6789d40f
Sep 8, 2026
Merged

chore(desktop): Ultracite lint init and Oxlint migration#223
IchenDEV merged 19 commits into
mainfrom
cursor/6789d40f

Conversation

@IchenDEV

@IchenDEV IchenDEV commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Canonical change Artifact

Link the canonical docs/sdlc/changes/<date>-<slug>/change.md:

  • Change: docs/sdlc/changes/2026-09-03-ultracite-init/change.md
  • Schema: 2
  • Lifecycle status: executing
  • Intent/Spec approval: user via the 2026-09-03 Ultracite request and the 2026-09-04 oxlint migration / type-safety cleanup requests
  • Risk and scope: medium; docs/sdlc/changes/2026-09-03-ultracite-init, apps/desktop

Outcome

Desktop moves from hand-tuned ESLint to Ultracite, then migrates the Ultracite provider to Oxlint + Oxfmt. Product Button/Textarea/radius constraints (including Tailwind radius-class ban) and Stylelint semantic radius rules remain enforced. Type-aware themes (strict-boolean-expressions, no-unsafe-*) are driven to zero on product src via jsonValue / isOneOf / td / cssVars fixes plus explicit host-boundary overrides. Dead ESLint helpers are removed. bun run check, oxlint, tsc, doctor, and stylelint are green.

Verification

  • Every AC-N acceptance criterion is mapped to one actual command or linked evidence item.
  • The Artifact records Verdict: and Residual risk: consistently with its status.
  • Verification mode, verifier, and date match the risk lane; high/critical verification is independent.
  • Relevant Rust, desktop, documentation, packaging, or runtime checks passed.
  • User-visible UI changes include real light, dark, and narrow evidence where applicable.
  • Failures, skipped checks, and residual risk are recorded.

Evidence: evidence/oxlint-migration/, evidence/oxlint-clean-2026-09-04.txt, evidence/oxlint-constraints-2026-09-04.txt, evidence/oxlint-type-safety-zero-2026-09-04.txt.

Review and release

  • Risk level: medium
  • Release target: none
  • Rollback: restore evidence/oxlint-migration/{eslint,prettier,stylelint,package} backups and reinstall the ESLint-provider toolchain
  • Merge approval: pending
  • Release approval: not applicable
  • This PR does not infer merge, deployment, or release authority from implementation work.

Summary

  • Initialize Ultracite and apply thematic ESLint compliance, then migrate to oxlint + oxfmt.
  • Keep product UI lint constraints; verify Tailwind radius-class ban under oxlint.
  • Clear type-safety residuals (strict-boolean / no-unsafe-*) with helpers and explicit boundary overrides.
  • Remove dead ESLint-era helpers; record SDLC evidence for clean check and constraints.

Test plan

  • cd apps/desktop && bunx tsc --noEmit
  • cd apps/desktop && bun run check
  • cd apps/desktop && bunx ultracite doctor
  • cd apps/desktop && bun run lint:styles
  • Confirm raw <button> / rounded-lg / inline borderRadius still lint-fail
  • Smoke desktop launch after toolchain switch

IchenDEV and others added 4 commits September 4, 2026 11:48
Adopt Ultracite presets for desktop while keeping project-specific radius and control lint constraints.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply Ultracite autofix across the desktop app and record residual non-fixable diagnostics.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drive boolean, unsafe, and hooks themes toward Ultracite ESLint standards with codemods and targeted fixes while preserving product UI constraints.

Co-authored-by: Cursor <cursoragent@cursor.com>
Switch desktop lint/format to oxlint+oxfmt, keep product UI constraints and Stylelint radius rules, and record clean-check evidence.

Co-authored-by: Cursor <cursoragent@cursor.com>
@IchenDEV IchenDEV changed the title chore(desktop): Ultracite lint init and compliance chore(desktop): Ultracite lint init and Oxlint migration Sep 4, 2026
IchenDEV and others added 7 commits September 4, 2026 17:14
Confirm Tailwind radius-class ban under oxlint, remove dead ESLint helpers, and update the change Artifact evidence.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bring in cn/Phosphor/sidebar work from main, keep the Ultracite oxlint+oxfmt toolchain, and restore product-focused Stylelint radius rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep ultracite check green after merging main by skipping src-tauri gen schemas and host/asset JSON.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drive strict-boolean and no-unsafe-* down with jsonValue/isOneOf/td helpers
and explicit host-boundary overrides so ultracite check stays green.

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore effect-stable callbacks/memos for bun test (no React Compiler),
fix titlebar/PR cursor/TurnCard loops, and align contract tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace legacy change.md so the SDLC Gate accepts the PR against main's
four-stage contract.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve PaneDivider/AppearanceSettings conflicts while keeping schema-3
SDLC migration and type-safety fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@IchenDEV
IchenDEV marked this pull request as ready for review September 6, 2026 13:58
IchenDEV and others added 8 commits September 6, 2026 22:12
Stop SourceControl effect loops, silence act-warning floods, run full
tests once on Ubuntu with timeouts, and smoke unit tests on macOS/Windows.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep a single Ubuntu desktop Gate on PRs and rename the job so it no
longer collides with SDLC validate.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Update source-contract expectations and Unicode CSS regexes, polyfill
ResizeObserver for smoke, and format the five check-failing files.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Restore incomplete switch stubs and harness/contract assertions so Ubuntu
desktop CI reaches 867 pass / 0 fail under oxlint exhaustiveness rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@IchenDEV
IchenDEV merged commit a6a6981 into main Sep 8, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant